﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using KPWeb.Class;
using KPWeb.Data;
using KPWeb.Function;

namespace KPWeb.Moje
{
    public partial class WybierzLunch : KPPage
    {
        private bool CzyRezerwacja
        {

            get
            {
                if (this.ViewState["CzyRezerwacja"] == null)
                    this.ViewState["CzyRezerwacja"] = false;
                return (bool)ViewState["CzyRezerwacja"] ;
            }
            set
            {
                ViewState["CzyRezerwacja"] = value;

            }
        }

        private void komunikatError(int kod)//, int iT, int iID)
        {
            fError.Visible = true;
            switch (kod)
            {
                case -1: Error1.Visible = true;
                    break;
                case -2: Error2.Visible = true;
                    break;
                case -3: Error3.Visible = true;
                    break;

                default: fError.Visible = false;
                    break;
            }
        }
        
        public static IEnumerable<vKP_WybierzLunch> PobierzZamowieniaDzisiejsze()
        {
            DateTime dt1 = DateTime.Now.Date;
            DateTime dt2 = dt1.AddDays(1).Date;
   
            using (DBContainer db = new DBContainer())
            {
                int jednostkaGlownaID = Model.GetJednostkaGlownaDlaJednostki(int.Parse(Current.JednostkaID));
                return (db.vKP_WybierzLunch.Where(a => a.JednostkaGlownaID == jednostkaGlownaID &&
                    a.DataLunch >= dt1 && a.DataLunch < dt2).OrderByDescending(a=>a.DataLunch).ToArray());
            }
        }
        public void InitUserData()
        {
            dTypLunch.Items.Clear();
            var lMenu = cMoje.GetListaTypLunch(int.Parse(Current.JednostkaID));
            if (lMenu.Count() == 0)
            {
                komunikatError(-3);
                fMenu.Visible = false;
            }
            else
            {
                fMenu.Visible = true;
                foreach (vKP_TypLunch u in lMenu.OrderBy(a => a.NazwaLunch))
                {
                    this.dTypLunch.Items.Add(new ListItem() { Text = u.NazwaLunch, Value = u.TypLunchID.ToString() });
                }
                dTypLunch.SelectedValue = Stale.lunchInic;
             }
         }
  
        protected void Page_Load(object sender, EventArgs e)
        {
                     fError.Visible = false;
                     Error1.Visible = false;
                     Error2.Visible = false;
                     Error3.Visible = false;
            if (!this.IsPostBack)
            {
                CzyRezerwacja = false;
                try
                {  
                    this.InitUserData();
                }
                catch (Exception ex)
                {
                }
            }
        }
        protected void bZapiszWybranePozycje_click(object sender, EventArgs e)
        {
            if (CzyRezerwacja)
            {
                fError.Visible = true;
                return;
            }
            CzyRezerwacja = true;
            if (dTypLunch.Items.Count == 0) return;
            string[] lWybierzMenu = new string[dTypLunch.Items.Count];
            int j = 0;
           for (int k = 0; k < 3; k++) { System.Threading.Thread.Sleep(1000); }
           for (int i = 0; i < dTypLunch.Items.Count; i++)
            {
                if (dTypLunch.Items[i].Selected)
                    lWybierzMenu[j++] = dTypLunch.Items[i].Value;
            }
          
            if (lWybierzMenu.Count() == 0) return;
            if (cMoje.InsertUpdateWybierzLunch(lWybierzMenu, int.Parse(Current.OsobaID), this.LunchUwagi.Text) == 1)
            {
                komunikatError(-1);
            }
            CzyRezerwacja = false;

        }
        protected void bAnulujWybranePozycje_click(object sender, EventArgs e)
        {

            if (CzyRezerwacja) return;
            CzyRezerwacja = true;
            if (cMoje.AnulujLunch(int.Parse(Current.OsobaID), this.LunchUwagi.Text) == 1)
            {
                komunikatError(-2);
            }
            CzyRezerwacja = false;
        }
         protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
          
            string sTemp = ((Label)e.Item.FindControl("NazwiskoImie")).Text;
          
               ((Label)e.Item.FindControl("NazwiskoImie")).Text = FunctionGlobal.UppercaseFirstWords(sTemp);
          

        }
       
    }
}

